<!DOCTYPE html>
<html lang="en">
	<head>
		<meta charset="UTF-8" />
		<meta http-equiv="X-UA-Compatible" content="IE=edge" />
		<meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no" />
		<title>展开运算符</title>
	</head>
	<body>
		<script type="text/javascript">
			let arr1 = [1, 3, 5, 7, 9];
			let arr2 = [2, 4, 6, 8, 10];
			console.log(...arr1); //展开一个数组

			let arr3 = [...arr1, ...arr2]; //连接数组
			console.log(arr3);

			// 在函数中使用
			function sum(...numbers) {
				console.log(numbers);
				return numbers.reduce((perValue, currentValue) => {
					return perValue + currentValue;
				});
			}
			console.log(sum(1, 2, 3, 4));

			// 构造字面量对象时使用展开运算符
			let person = { name: "Tom", age: 20 };
			let person2 = { ...person };
			// console.log(...person)//报错，展开运算符不能展开对象
			person.name = "Jerry";
			console.log(person2);
			console.log(person);

			// 合并
			let person3 = { ...person, name: "jack", address: "地球" };
			console.log(person3);
		</script>
	</body>
</html>
